package com.yb0os1.Array;

public class BinSearch {
    /*
    给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target
    写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1
     */
    public int search(int[] nums, int target) {
        // 避免当 target 小于nums[0] nums[nums.length - 1]时多次循环运算
        if (target < nums[0] || target > nums[nums.length - 1]) {
            return -1;
        }
        int l = 0,r = nums.length-1;
        while (l<=r){
            int mid = l + ((r - l) >> 1);
            if (nums[mid]==target)return mid;
            else if (nums[mid]>target)r = mid-1;
            else l = mid+1;
        }
        return -1;
    }
}
